<?php 
class EditalDAO{

	private $tableName = 'tb_edital';
	private $conn;
	private $sqlGenerator;
	private $prefixo;

	public function __construct(){
		$this->conn  = new CONEXAO();
	}
	
	public function getTableName(){
		return $this->tableName;
	}
	
	public function setTableName($tableName){
		$this->tableName=$tableName;
	}
	
	public function getConn(){
		return $this->conn;
	}
	
	public function setConn($conn){
		$this->conn=$conn;
	}
	
	public function getSqlGenerator(){
		return $this->sqlGenerator;
	}
	
	public function setSqlGenerator($sqlGenerator){
		$this->sqlGenerator=$sqlGenerator;
	}
	
	public function getPrefixo(){
		return $this->prefixo;
	}
	
	public function setPrefixo($prefixo){
		$this->prefixo=$prefixo;
	}
	
	public function mapear(){
	
	 //TODO 
	
	}
	
	public function inserir($obj){
		$this->conn->Conecta();
		$id = $this->conn->maxId($this->tableName) + 1;
		$this->conn->Desconecta();
		
		$obj->setId($id);
		$numero = $obj->getNumero();
		$titulo = $obj->getTitulo();
		$descricao = $obj->getDescricao();
		$dataLancamento = $obj->getDataLancamento();
		$dataEncerramento = $obj->getDataEncerramento();
		$arquivo = $obj->getArquivo();
		
		$consulta = "INSERT INTO ".$this->tableName." (id, numero, titulo, descricao, dataLancamento, dataEncerramento, arquivo) VALUES ('$id', '$numero', '$titulo', '$descricao', '$dataLancamento', '$dataEncerramento', '$arquivo')";
		echo $consulta;
		
		$this->conn->Conecta();
		$this->conn->Executa($consulta);
		$this->conn->Desconecta();
	}
	
	public function atualizar($obj){
		$id = $obj->getId();
		$numero = $obj->getNumero();
		$titulo = $obj->getTitulo();
		$descricao = $obj->getDescricao();
		$dataLancamento = $obj->getDataLancamento();
		$dataEncerramento = $obj->getDataEncerramento();
		$arquivo = $obj->getArquivo();
		
		$consulta = "UPDATE ".$this->tableName." SET numero='$numero', titulo='$titulo', descricao='$descricao', dataLancamento='$dataLancamento', dataEncerramento='$dataEncerramento', arquivo='$arquivo' WHERE id='$id'";
		//echo $consulta;
		
		$this->conn->Conecta();
		$this->conn->Executa($consulta);
		$this->conn->Desconecta();
	}
	
	public function apagar($id){
		$consulta = "DELETE FROM ".$this->tableName." WHERE id=".$id;
		echo $consulta;
		
		$this->conn->Conecta();
		$this->conn->Executa($consulta);
		$this->conn->Desconecta();
	}
	
	public function geraWherePesquisa(){
	
	 //TODO 
	
	}
	
	public function contem($obj){
		$numero = $obj->getNumero();
		$consulta = "SELECT * FROM ".$this->tableName." WHERE numero='$numero'";
		echo $consulta;
		
		$this->conn->Conecta();
		$res = $this->conn->getResultAsVector($consulta);
		$this->conn->Desconecta();
		
		if (count($res) > 0)
			return 1;
		else
			return 0;
	}
	
	public function buscar($obj){
		if ($obj->getId() != 0) {
			$id = $obj->getId();
			$consulta = "SELECT * FROM ".$this->tableName." WHERE id='$id'";
		}
		elseif ($obj->getNumero() != "") {
			$numero = $obj->getNumero();
			$consulta = "SELECT * FROM ".$this->tableName." WHERE numero='$numero'";
		}
		//echo $consulta;
		
		$this->conn->Conecta();
		$res = $this->conn->getResultAsVector($consulta);
		$this->conn->Desconecta();
		
		if (count($res) > 0) {
			$obj = Edital::construct($res[0]);
			$obj->setId($res[0]['id']);
			return $obj;
		}
		else
			return null;
	}
	
	public function buscarTodos(){
		$consulta = "SELECT * FROM ".$this->tableName;
		
		$this->conn->Conecta();
		$res = $this->conn->getResultAsVector($consulta);
		$this->conn->Desconecta();
		
		return $res;
	}
	
	public function buscarTodosData($data){
		$consulta = "SELECT * FROM ".$this->tableName." WHERE dataLancamento<='$data' AND dataEncerramento>='$data'";
		//echo $consulta;
		
		$this->conn->Conecta();
		$res = $this->conn->getResultAsVector($consulta);
		$this->conn->Desconecta();
		
		return $res;
	}
	
	public function buscarTodosSearch($valor, $campo) {
		$consulta = "SELECT * FROM ".$this->tableName." WHERE $campo='$valor'";
		//echo $consulta;
		
		$this->conn->Conecta();
		$res = $this->conn->getResultAsVector($consulta);
		$this->conn->Desconecta();
		
		return $res;
	}
}
?>